home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v08i040: NetHack3 - display oriented dungeons & dragons (Ver. 3.0), Patch4d
- Message-ID: <4630@tekred.CNA.TEK.COM>
- Date: 29 Sep 89 21:10:03 GMT
- Sender: nobody@tekred.CNA.TEK.COM
- Lines: 2046
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
- Posting-number: Volume 8, Issue 40
- Archive-name: NetHack3/Patch4d
- Patch-To: NetHack3: Volume 7, Issue 56-93
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 11)."
- # Contents: patches04d
- # Wrapped by billr@saab on Fri Sep 29 13:14:06 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patches04d' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patches04d'\"
- else
- echo shar: Extracting \"'patches04d'\" \(52224 characters\)
- sed "s/^X//" >'patches04d' <<'END_OF_FILE'
- X*** src/Old/polyself.c Wed Sep 27 12:09:55 1989
- X--- src/polyself.c Mon Sep 25 21:35:23 1989
- X***************
- X*** 102,109 ****
- X--- 102,115 ----
- X goto newname;
- X }
- X (void)strncpy(plname, buf, sizeof(plname)-1);
- X+ #ifdef VMS
- X+ Sprintf(SAVEF, "[.save]%d%s", getuid(), plname);
- X+ regularize(SAVEF+7);
- X+ Strcat(SAVEF, ";1");
- X+ #else
- X Sprintf(SAVEF, "save/%d%s", getuid(), plname);
- X regularize(SAVEF+5); /* avoid . or / in name */
- X+ #endif
- X #ifdef WIZARD
- X }
- X #endif
- X***************
- X*** 123,129 ****
- X int mntmp = -1;
- X int tries=0;
- X boolean draconian = (uarm && uarm->otyp==DRAGON_SCALE_MAIL &&
- X! uarm->corpsenm >= PM_GREY_DRAGON &&
- X uarm->corpsenm <= PM_YELLOW_DRAGON);
- X boolean iswere = (u.ulycn > -1 || is_were(uasmon));
- X boolean isvamp = (u.usym == S_VAMPIRE || u.umonnum == PM_VAMPIRE_BAT);
- X--- 129,135 ----
- X int mntmp = -1;
- X int tries=0;
- X boolean draconian = (uarm && uarm->otyp==DRAGON_SCALE_MAIL &&
- X! uarm->corpsenm >= PM_GRAY_DRAGON &&
- X uarm->corpsenm <= PM_YELLOW_DRAGON);
- X boolean iswere = (u.ulycn > -1 || is_were(uasmon));
- X boolean isvamp = (u.usym == S_VAMPIRE || u.umonnum == PM_VAMPIRE_BAT);
- X***************
- X*** 222,230 ****
- X--- 228,245 ----
- X u.acurr = u.macurr;
- X u.amax = u.mamax;
- X }
- X+ tmp = u.umonnum;
- X u.umonnum = mntmp;
- X set_uasmon();
- X u.usym = mons[mntmp].mlet;
- X+
- X+ if (tmp != mntmp)
- X+ You("turn into a%s %s!",
- X+ index(vowels, *(mons[mntmp].mname)) ? "n" : "",
- X+ mons[mntmp].mname);
- X+ else
- X+ You("feel like a new %s!", mons[mntmp].mname);
- X+
- X /* New stats for monster, to last only as long as polymorphed.
- X * Currently only strength gets changed.
- X */
- X***************
- X*** 238,244 ****
- X Sick = 0;
- X You("no longer feel sick.");
- X }
- X! if (u.usym == S_DRAGON && mntmp >= PM_GREY_DRAGON) u.mhmax = 80;
- X #ifdef GOLEMS
- X else if (is_golem(uasmon)) u.mhmax = golemhp(mntmp);
- X #endif /* GOLEMS */
- X--- 253,259 ----
- X Sick = 0;
- X You("no longer feel sick.");
- X }
- X! if (u.usym == S_DRAGON && mntmp >= PM_GRAY_DRAGON) u.mhmax = 80;
- X #ifdef GOLEMS
- X else if (is_golem(uasmon)) u.mhmax = golemhp(mntmp);
- X #endif /* GOLEMS */
- X***************
- X*** 255,263 ****
- X else u.mhmax = d(tmp, 8);
- X }
- X u.mh = u.mhmax;
- X- You("turn into a%s %s!",
- X- index(vowels, *(mons[mntmp].mname)) ? "n" : "",
- X- mons[mntmp].mname);
- X if (uskin && mntmp != uskin->corpsenm)
- X skinback();
- X break_armor();
- X--- 270,275 ----
- X***************
- X*** 433,438 ****
- X--- 445,451 ----
- X
- X if (!getdir(1)) return(0);
- X otmp = mksobj(u.umonnum==PM_COBRA ? BLINDING_VENOM : ACID_VENOM, FALSE);
- X+ otmp->spe = 1; /* to indicate it's yours */
- X (void) throwit(otmp);
- X return(1);
- X }
- X*** src/Old/potion.c Wed Sep 27 12:10:40 1989
- X--- src/potion.c Mon Sep 25 21:30:15 1989
- X***************
- X*** 146,164 ****
- X register struct obj *otmp;
- X
- X #ifdef FOUNTAINS
- X!
- X! /* Is there something to drink here, i.e., a fountain? */
- X! if (IS_FOUNTAIN(levl[u.ux][u.uy].typ)) {
- X! pline("Drink from the fountain? ");
- X! if(yn() == 'y') {
- X! (void) drinkfountain();
- X! return(1);
- X! }
- X! }
- X!
- X! #endif /* FOUNTAINS /**/
- X #ifdef SINKS
- X! /* Now, check for kitchen sinks... */
- X if (IS_SINK(levl[u.ux][u.uy].typ)) {
- X pline("Drink from the sink? ");
- X if (yn() == 'y') {
- X--- 146,162 ----
- X register struct obj *otmp;
- X
- X #ifdef FOUNTAINS
- X! /* Is there a fountain to drink from here? */
- X! if (IS_FOUNTAIN(levl[u.ux][u.uy].typ)) {
- X! pline("Drink from the fountain? ");
- X! if(yn() == 'y') {
- X! (void) drinkfountain();
- X! return 1;
- X! }
- X! }
- X! #endif
- X #ifdef SINKS
- X! /* Or a kitchen sink? */
- X if (IS_SINK(levl[u.ux][u.uy].typ)) {
- X pline("Drink from the sink? ");
- X if (yn() == 'y') {
- X***************
- X*** 168,174 ****
- X }
- X #endif
- X
- X- unkn = 0;
- X otmp = getobj(beverages, "drink");
- X if(!otmp) return(0);
- X if(objects[otmp->otyp].oc_descr && !strcmp(objects[otmp->otyp].oc_descr, "smoky") && !rn2(13)) {
- X--- 166,171 ----
- X***************
- X*** 190,196 ****
- X {
- X int retval;
- X
- X! nothing = 0;
- X if((retval = peffects(otmp)) >= 0) return(retval);
- X
- X if(nothing) {
- X--- 187,193 ----
- X {
- X int retval;
- X
- X! nothing = unkn = 0;
- X if((retval = peffects(otmp)) >= 0) return(retval);
- X
- X if(nothing) {
- X***************
- X*** 807,814 ****
- X if(!(obj = getobj("#", "dip")))
- X return(0);
- X #ifdef FOUNTAINS
- X! /* Is there something to dip into here, i.e., a fountain? */
- X! if (levl[u.ux][u.uy].typ == FOUNTAIN) {
- X pline("Dip it into the fountain? ");
- X if(yn() == 'y') {
- X dipfountain(obj);
- X--- 804,811 ----
- X if(!(obj = getobj("#", "dip")))
- X return(0);
- X #ifdef FOUNTAINS
- X! /* Is there a fountain to dip into here? */
- X! if (IS_FOUNTAIN(levl[u.ux][u.uy].typ)) {
- X pline("Dip it into the fountain? ");
- X if(yn() == 'y') {
- X dipfountain(obj);
- X***************
- X*** 959,965 ****
- X char buf[BUFSZ];
- X Strcpy(buf, xname(potion));
- X pline("The %s form%s a coating on the %s.",
- X! buf, (potion->quan==1) ? "s" : "", xname(obj));
- X obj->opoisoned = 1;
- X goto poof;
- X } else if(obj->opoisoned &&
- X--- 956,962 ----
- X char buf[BUFSZ];
- X Strcpy(buf, xname(potion));
- X pline("The %s form%s a coating on the %s.",
- X! buf, potion->quan==1 ? "s" : "", xname(obj));
- X obj->opoisoned = 1;
- X goto poof;
- X } else if(obj->opoisoned &&
- X*** src/Old/pray.c Wed Sep 27 12:11:32 1989
- X--- src/pray.c Tue Sep 26 12:59:40 1989
- X***************
- X*** 38,62 ****
- X 0,0,0,0
- X };
- X
- X! #define TROUBLE_STONED 8
- X! #define TROUBLE_STRANGLED 7
- X! #define TROUBLE_SICK 6
- X! #define TROUBLE_STARVING 5
- X! #define TROUBLE_HIT 4
- X #define TROUBLE_STUCK_IN_WALL 3
- X #define TROUBLE_CURSED_BLINDFOLD 2
- X #define TROUBLE_CURSED_LEVITATION 1
- X
- X! #define TROUBLE_LYCANTHROPE (-1)
- X! #define TROUBLE_PUNISHED (-2)
- X! #define TROUBLE_CURSED_ITEMS (-3)
- X! #define TROUBLE_BLIND (-4)
- X! #define TROUBLE_HUNGRY (-5)
- X! #define TROUBLE_POISONED (-6)
- X! #define TROUBLE_WOUNDED_LEGS (-7)
- X! #define TROUBLE_STUNNED (-8)
- X! #define TROUBLE_CONFUSED (-9)
- X! #define TROUBLE_HALLUCINATION (-10)
- X
- X /* We could force rehumanize of polyselfed people, but we can't tell
- X unintentional shape changes from the other kind. Oh well. */
- X--- 38,62 ----
- X 0,0,0,0
- X };
- X
- X! #define TROUBLE_STONED 9
- X! #define TROUBLE_STRANGLED 8
- X! #define TROUBLE_SICK 7
- X! #define TROUBLE_STARVING 6
- X! #define TROUBLE_HIT 5
- X! #define TROUBLE_LYCANTHROPE 4
- X #define TROUBLE_STUCK_IN_WALL 3
- X #define TROUBLE_CURSED_BLINDFOLD 2
- X #define TROUBLE_CURSED_LEVITATION 1
- X
- X! #define TROUBLE_PUNISHED (-1)
- X! #define TROUBLE_CURSED_ITEMS (-2)
- X! #define TROUBLE_BLIND (-3)
- X! #define TROUBLE_HUNGRY (-4)
- X! #define TROUBLE_POISONED (-5)
- X! #define TROUBLE_WOUNDED_LEGS (-6)
- X! #define TROUBLE_STUNNED (-7)
- X! #define TROUBLE_CONFUSED (-8)
- X! #define TROUBLE_HALLUCINATION (-9)
- X
- X /* We could force rehumanize of polyselfed people, but we can't tell
- X unintentional shape changes from the other kind. Oh well. */
- X***************
- X*** 102,107 ****
- X--- 102,110 ----
- X if (!isok(u.ux+i, u.uy+j) || IS_ROCK(levl[u.ux+i][u.uy+j].typ))
- X count++;
- X }
- X+ #ifdef POLYSELF
- X+ if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE);
- X+ #endif
- X if(count==8
- X #ifdef POLYSELF
- X && !passes_walls(uasmon)
- X***************
- X*** 113,121 ****
- X return(TROUBLE_CURSED_LEVITATION);
- X if(ublindf && ublindf->cursed) return(TROUBLE_CURSED_BLINDFOLD);
- X
- X- #ifdef POLYSELF
- X- if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE);
- X- #endif
- X if(Punished) return(TROUBLE_PUNISHED);
- X for(otmp=invent; otmp; otmp=otmp->nobj)
- X if((otmp->otyp==LOADSTONE || otmp->otyp==LUCKSTONE) &&
- X--- 116,121 ----
- X***************
- X*** 411,417 ****
- X int trouble = in_trouble (); /* what's your worst difficulty? */
- X int pat_on_head = 0;
- X
- X- if (u.ugangr > 0) u.ugangr--;
- X You("feel that %s is pleased.",
- X #ifndef ALTARS
- X u_gname());
- X--- 411,416 ----
- X***************
- X*** 675,680 ****
- X--- 674,681 ----
- X {
- X if (Hallucination)
- X pline ("Your sacrifice sprouts wings and a propeller and roars away!");
- X+ else if (Blind && u.ualigntyp == U_LAWFUL)
- X+ pline("Your sacrifice disappears!");
- X else pline ("Your sacrifice is consumed in a %s!",
- X u.ualigntyp == U_LAWFUL ? "flash of light" : "burst of flame");
- X useup(otmp);
- X***************
- X*** 718,724 ****
- X register struct permonst *mtmp = &mons[otmp->corpsenm];
- X extern int monstr[];
- X
- X! if (otmp->corpsenm == PM_ACID_BLOB || (moves <= otmp->age + 50))
- X value = monstr[otmp->corpsenm] + 1;
- X
- X if (is_human(mtmp)) { /* Human sacrifice! */
- X--- 719,725 ----
- X register struct permonst *mtmp = &mons[otmp->corpsenm];
- X extern int monstr[];
- X
- X! if (otmp->corpsenm == PM_ACID_BLOB || (monstermoves <= otmp->age + 50))
- X value = monstr[otmp->corpsenm] + 1;
- X
- X if (is_human(mtmp)) { /* Human sacrifice! */
- X***************
- X*** 777,783 ****
- X int unicalign;
- X
- X if (mtmp == &mons[PM_BLACK_UNICORN]) unicalign = -1;
- X! else if (mtmp == &mons[PM_GREY_UNICORN]) unicalign = 0;
- X else if (mtmp == &mons[PM_WHITE_UNICORN]) unicalign = 1;
- X if (unicalign == u.ualigntyp) {
- X pline("Such an action is an insult to %s!", (unicalign== -1)
- X--- 778,784 ----
- X int unicalign;
- X
- X if (mtmp == &mons[PM_BLACK_UNICORN]) unicalign = -1;
- X! else if (mtmp == &mons[PM_GRAY_UNICORN]) unicalign = 0;
- X else if (mtmp == &mons[PM_WHITE_UNICORN]) unicalign = 1;
- X if (unicalign == u.ualigntyp) {
- X pline("Such an action is an insult to %s!", (unicalign== -1)
- X*** src/Old/pri.c Wed Sep 27 12:12:22 1989
- X--- src/pri.c Wed Sep 27 11:25:39 1989
- X***************
- X*** 10,20 ****
- X #include "epri.h"
- X #endif
- X
- X! static void hilite P((UCHAR_P, UCHAR_P));
- X static void cornbot P((int));
- X static boolean ismnst P((CHAR_P));
- X! #if !defined(DECRAINBOW) && !defined(UNIX)
- X # define g_putch (void) putchar
- X #endif
- X
- X #ifndef g_putch
- X--- 10,31 ----
- X #include "epri.h"
- X #endif
- X
- X! static void hilite P((int,int,UCHAR_P, UCHAR_P));
- X static void cornbot P((int));
- X static boolean ismnst P((CHAR_P));
- X! #ifdef TEXTCOLOR
- X! static uchar mimic_color P((UCHAR_P));
- X! #endif
- X!
- X! #if defined(MSDOS) && !defined(TERMLIB) && !defined(DECRAINBOW)
- X! # define g_putch (void) putchar
- X! #endif
- X!
- X! /* This is the same logic used for "#define IBMXASCII" in file "termcap.c" */
- X! #if !defined(AMIGA) && !defined(TOS)
- X! # if defined(TERMLIB) || !(defined(DECRAINBOW) || defined(OS2))
- X # define g_putch (void) putchar
- X+ # endif
- X #endif
- X
- X #ifndef g_putch
- X***************
- X*** 49,55 ****
- X curx = u.ux+2;
- X curs(u.ux-1, u.uy+2);
- X (void) putchar('|');
- X! hilite(u.usym, AT_MON);
- X (void) putchar('|');
- X curx = u.ux+2;
- X curs(u.ux-1, u.uy+3);
- X--- 60,66 ----
- X curx = u.ux+2;
- X curs(u.ux-1, u.uy+2);
- X (void) putchar('|');
- X! hilite(u.ux, u.uy, u.usym, AT_MON);
- X (void) putchar('|');
- X curx = u.ux+2;
- X curs(u.ux-1, u.uy+3);
- X***************
- X*** 140,146 ****
- X y += 2;
- X curs(x,y);
- X
- X! hilite(ch,typ);
- X curx++;
- X }
- X
- X--- 151,157 ----
- X y += 2;
- X curs(x,y);
- X
- X! hilite(x, y-2, ch, typ);
- X curx++;
- X }
- X
- X***************
- X*** 385,397 ****
- X if(obj->olet == FOOD_SYM && obj->otyp == CORPSE) {
- X
- X if(mons[obj->corpsenm].mlet == S_TROLL &&
- X! obj->age + 20 < moves) {
- X boolean visible = cansee(obj->ox,obj->oy);
- X struct monst *mtmp = revive(obj, FALSE);
- X
- X if (mtmp && visible)
- X pline("%s rises from the dead!", Monnam(mtmp));
- X! } else if (obj->age + 250 < moves) delobj(obj);
- X }
- X }
- X
- X--- 396,408 ----
- X if(obj->olet == FOOD_SYM && obj->otyp == CORPSE) {
- X
- X if(mons[obj->corpsenm].mlet == S_TROLL &&
- X! obj->age + 20 < monstermoves) {
- X boolean visible = cansee(obj->ox,obj->oy);
- X struct monst *mtmp = revive(obj, FALSE);
- X
- X if (mtmp && visible)
- X pline("%s rises from the dead!", Monnam(mtmp));
- X! } else if (obj->age + 250 < monstermoves) delobj(obj);
- X }
- X }
- X
- X***************
- X*** 399,405 ****
- X obj2 = obj->nobj;
- X if(obj->otyp == CORPSE) {
- X if(mons[obj->corpsenm].mlet == S_TROLL
- X! && obj->age + 20 < moves) {
- X boolean wielded = (obj==uwep);
- X struct monst *mtmp = revive(obj, TRUE);
- X
- X--- 410,416 ----
- X obj2 = obj->nobj;
- X if(obj->otyp == CORPSE) {
- X if(mons[obj->corpsenm].mlet == S_TROLL
- X! && obj->age + 20 < monstermoves) {
- X boolean wielded = (obj==uwep);
- X struct monst *mtmp = revive(obj, TRUE);
- X
- X***************
- X*** 408,414 ****
- X mtmp->data->mname, xname(obj));
- X else if (mtmp)
- X You("feel squirming in your backpack!");
- X! } else if (obj->age + 250 < moves) useup(obj);
- X }
- X }
- X }
- X--- 419,425 ----
- X mtmp->data->mname, xname(obj));
- X else if (mtmp)
- X You("feel squirming in your backpack!");
- X! } else if (obj->age + 250 < monstermoves) useup(obj);
- X }
- X }
- X }
- X***************
- X*** 1070,1095 ****
- X return hcolors[rn2(SIZE(hcolors))];
- X }
- X
- X! /* Bug: if a level character is the same as an object/monster, it may be
- X! * hilited, because we use a kludge to figure out if a character is an
- X! * object/monster symbol. It's smarter than it was in 2.3, but you
- X! * can still fool it (ex. if an object is in a doorway you have not seen,
- X! * and you look at a map, the '+' will be taken as a spellbook symbol).
- X! *
- X! * The problem is that whenever a portion of the map needs to be redrawn
- X! * (by ^R, after an inventory dropover, after regurgitation...), the
- X! * levl[][].scrsym field is used to redraw the map. A great duplication
- X! * of code would be needed to trace back every scrsym to find out what color
- X! * it should be.
- X! *
- X! * What is really needed is a levl[][].color field; the color be figured
- X! * out at the same time as the screen symbol, and be restored with
- X! * redraws. Unfortunately, as this requires much time and testing,
- X! * it will have to wait for NetHack 3.1. -3.
- X! */
- X!
- X static void
- X! hilite(let,typ)
- X uchar let, typ;
- X {
- X
- X--- 1081,1090 ----
- X return hcolors[rn2(SIZE(hcolors))];
- X }
- X
- X! /*ARGSUSED*/
- X static void
- X! hilite(x, y, let, typ)
- X! int x, y;
- X uchar let, typ;
- X {
- X
- X***************
- X*** 1122,1152 ****
- X case S_MIMIC_DEF:
- X typ = HI_OBJ;
- X break;
- X- case S_YLIGHT: /* make 'em "glow" */
- X- typ = YELLOW;
- X- break;
- X default:
- X! typ = HI_MON;
- X }
- X break;
- X case AT_OBJ:
- X! switch (let) {
- X! case GOLD_SYM:
- X! typ = HI_GOLD;
- X! break;
- X! case WEAPON_SYM:
- X! case ARMOR_SYM:
- X! case RING_SYM:
- X! case AMULET_SYM:
- X! typ = HI_METAL;
- X! break;
- X! case FOOD_SYM:
- X! case POTION_SYM:
- X! typ = HI_ORGANIC;
- X! break;
- X! default:
- X! typ = HI_OBJ;
- X! }
- X break;
- X case AT_MAP:
- X #ifdef FOUNTAINS
- X--- 1117,1137 ----
- X case S_MIMIC_DEF:
- X typ = HI_OBJ;
- X break;
- X default:
- X! if (u.ux == x && u.uy == y)
- X! typ = uasmon->mcolor;
- X! else
- X! typ = level.monsters[x][y]->data->mcolor;
- X }
- X break;
- X case AT_OBJ:
- X! if (let == GOLD_SYM)
- X! typ = HI_GOLD;
- X! else if (level.objects[x][y] &&
- X! let == objects[level.objects[x][y]->otyp].oc_olet)
- X! typ = objects[level.objects[x][y]->otyp].oc_color;
- X! else
- X! typ = mimic_color(let);
- X break;
- X case AT_MAP:
- X #ifdef FOUNTAINS
- X***************
- X*** 1154,1178 ****
- X #else
- X typ = (let == POOL_SYM
- X #endif
- X! && HI_COLOR[BLUE] != HI ? BLUE : 0);
- X break;
- X case AT_ZAP:
- X typ = HI_ZAP;
- X break;
- X }
- X! if (typ)
- X! xputs(HI_COLOR[typ]);
- X! #else
- X! if (typ == AT_MON) revbeg();
- X #endif
- X
- X g_putch(let);
- X
- X #ifdef TEXTCOLOR
- X! if (typ) xputs(HE);
- X! #else
- X! if (typ == AT_MON) m_end();
- X #endif
- X }
- X
- X static boolean
- X--- 1139,1166 ----
- X #else
- X typ = (let == POOL_SYM
- X #endif
- X! && hilites[BLUE] != HI ? BLUE :
- X! #ifdef THRONES
- X! let == THRONE_SYM && hilites[HI_GOLD] != HI ? HI_GOLD :
- X! #endif
- X! 0);
- X break;
- X case AT_ZAP:
- X typ = HI_ZAP;
- X break;
- X }
- X! if (typ && flags.use_color)
- X! xputs(hilites[typ]);
- X! else
- X #endif
- X+ if (typ == AT_MON) revbeg();
- X
- X g_putch(let);
- X
- X #ifdef TEXTCOLOR
- X! if (typ && flags.use_color) xputs(HE); else
- X #endif
- X+ if (typ == AT_MON) m_end();
- X }
- X
- X static boolean
- X***************
- X*** 1194,1196 ****
- X--- 1182,1201 ----
- X #endif
- X return 0;
- X }
- X+
- X+ #ifdef TEXTCOLOR
- X+ /* pick an appropriate color for a mimic imitating an object */
- X+
- X+ static uchar
- X+ mimic_color(let)
- X+ uchar let;
- X+ {
- X+ int i;
- X+
- X+ for(i = 0; i < NROFOBJECTS; i++) {
- X+ if (objects[i].oc_olet == let)
- X+ return objects[i].oc_color;
- X+ }
- X+ return HI_OBJ;
- X+ }
- X+ #endif
- X*** src/Old/priest.c Wed Sep 27 12:13:05 1989
- X--- src/priest.c Thu Sep 14 23:31:18 1989
- X***************
- X*** 85,94 ****
- X #endif
- X
- X if(nix != omx || niy != omy) {
- X! levl[omx][omy].mmask = 0;
- X! levl[nix][niy].mmask = 1;
- X! mtmp->mx = nix;
- X! mtmp->my = niy;
- X pmon(mtmp);
- X if(ib) {
- X if (cansee(mtmp->mx,mtmp->my))
- X--- 85,92 ----
- X #endif
- X
- X if(nix != omx || niy != omy) {
- X! remove_monster(omx, omy);
- X! place_monster(mtmp, nix, niy);
- X pmon(mtmp);
- X if(ib) {
- X if (cansee(mtmp->mx,mtmp->my))
- X***************
- X*** 110,116 ****
- X {
- X register int roomno = inroom(x, y);
- X
- X! if (roomno < 0 || rooms[roomno].rtype != TEMPLE) return(FALSE);
- X return(&rooms[roomno]);
- X }
- X
- X--- 108,115 ----
- X {
- X register int roomno = inroom(x, y);
- X
- X! if (roomno < 0 || rooms[roomno].rtype != TEMPLE)
- X! return((struct mkroom *)0);
- X return(&rooms[roomno]);
- X }
- X
- X***************
- X*** 183,189 ****
- X #ifdef SPELLS
- X register int cnt;
- X #endif
- X! if(levl[sx+1][sy].mmask) rloc(m_at(sx+1, sy)); /* insurance */
- X
- X if(priest = makemon(&mons[!rn2(2) ? PM_TEMPLE_PRIEST :
- X PM_TEMPLE_PRIESTESS], sx+1, sy)) {
- X--- 182,188 ----
- X #ifdef SPELLS
- X register int cnt;
- X #endif
- X! if(MON_AT(sx+1, sy)) rloc(m_at(sx+1, sy)); /* insurance */
- X
- X if(priest = makemon(&mons[!rn2(2) ? PM_TEMPLE_PRIEST :
- X PM_TEMPLE_PRIESTESS], sx+1, sy)) {
- X*** src/Old/prisym.c Wed Sep 27 12:13:29 1989
- X--- src/prisym.c Thu Sep 14 14:11:55 1989
- X***************
- X*** 216,222 ****
- X /* the only lit corridor squares should be the entrances to
- X * outside castle areas */
- X return;
- X! if(room->mmask) mtmp = m_at(x,y);
- X if(mtmp && !mtmp->mhide &&
- X (!mtmp->minvis || See_invisible)) {
- X #ifdef WORM
- X--- 216,222 ----
- X /* the only lit corridor squares should be the entrances to
- X * outside castle areas */
- X return;
- X! if(MON_AT(x, y)) mtmp = m_at(x,y);
- X if(mtmp && !mtmp->mhide &&
- X (!mtmp->minvis || See_invisible)) {
- X #ifdef WORM
- X***************
- X*** 227,233 ****
- X pmon(mtmp);
- X }
- X else if(OBJ_AT(x, y) && !is_pool(x,y)) {
- X! otmp = o_at(x,y);
- X atl(x,y,Hallucination ? rndobjsym() : otmp->olet);
- X }
- X else if(room->gmask && !is_pool(x,y))
- X--- 227,233 ----
- X pmon(mtmp);
- X }
- X else if(OBJ_AT(x, y) && !is_pool(x,y)) {
- X! otmp = level.objects[x][y];
- X atl(x,y,Hallucination ? rndobjsym() : otmp->olet);
- X }
- X else if(room->gmask && !is_pool(x,y))
- X***************
- X*** 263,269 ****
- X if(!room->seen) tmp = STONE_SYM;
- X else if(room->typ == POOL || room->typ == MOAT) tmp = POOL_SYM;
- X else if(OBJ_AT(x, y) && !Blind && room->scrsym) {
- X! otmp = o_at(x,y);
- X tmp = Hallucination ? rndobjsym() : otmp->olet;
- X }
- X else if(room->gmask && !Blind && room->scrsym)
- X--- 263,269 ----
- X if(!room->seen) tmp = STONE_SYM;
- X else if(room->typ == POOL || room->typ == MOAT) tmp = POOL_SYM;
- X else if(OBJ_AT(x, y) && !Blind && room->scrsym) {
- X! otmp = level.objects[x][y];
- X tmp = Hallucination ? rndobjsym() : otmp->olet;
- X }
- X else if(room->gmask && !Blind && room->scrsym)
- X***************
- X*** 483,489 ****
- X {
- X if(x == u.ux && y == u.uy && !Invisible) return(1);
- X
- X! if(levl[x][y].mmask)
- X if (Blind && Telepat || canseemon(m_at(x,y)))
- X return(1);
- X else return ((HTelepat & WORN_HELMET) &&
- X--- 483,489 ----
- X {
- X if(x == u.ux && y == u.uy && !Invisible) return(1);
- X
- X! if(MON_AT(x, y))
- X if (Blind && Telepat || canseemon(m_at(x,y)))
- X return(1);
- X else return ((HTelepat & WORN_HELMET) &&
- X*** src/Old/read.c Wed Sep 27 12:13:53 1989
- X--- src/read.c Sat Sep 23 00:46:44 1989
- X***************
- X*** 216,222 ****
- X return(1);
- X }
- X } else { /* armor and scroll both cursed */
- X! Your("%s vibrates", xname(otmp));
- X otmp->spe--;
- X make_stunned(HStun + rn1(10, 10), TRUE);
- X }
- X--- 216,222 ----
- X return(1);
- X }
- X } else { /* armor and scroll both cursed */
- X! Your("%s vibrates.", xname(otmp));
- X otmp->spe--;
- X make_stunned(HStun + rn1(10, 10), TRUE);
- X }
- X***************
- X*** 363,369 ****
- X register struct monst *mtmp;
- X
- X for(i = -bd; i <= bd; i++) for(j = -bd; j <= bd; j++)
- X! if(levl[u.ux+i][u.uy+j].mmask && (mtmp = m_at(u.ux+i, u.uy+j))) {
- X if(sobj->cursed) {
- X if(!mtmp->mtame) mtmp->mpeaceful = 0;
- X } else {
- X--- 363,369 ----
- X register struct monst *mtmp;
- X
- X for(i = -bd; i <= bd; i++) for(j = -bd; j <= bd; j++)
- X! if(MON_AT(u.ux+i, u.uy+j) && (mtmp = m_at(u.ux+i, u.uy+j))) {
- X if(sobj->cursed) {
- X if(!mtmp->mtame) mtmp->mpeaceful = 0;
- X } else {
- X*** src/Old/restore.c Wed Sep 27 12:14:35 1989
- X--- src/restore.c Tue Sep 26 16:08:35 1989
- X***************
- X*** 39,44 ****
- X--- 39,72 ----
- X }
- X }
- X
- X+ /* Recalculate level.objects[x][y], since this info was not saved. */
- X+ static void
- X+ find_lev_obj()
- X+ {
- X+ register struct obj *fobjtmp = (struct obj *)0;
- X+ register struct obj *otmp;
- X+ int x,y;
- X+
- X+ for(x=0; x<COLNO; x++) for(y=0; y<ROWNO; y++)
- X+ level.objects[x][y] = (struct obj *)0;
- X+
- X+ /* Reverse the entire fobj chain, which is necessary so that we can
- X+ * place the objects in the proper order.
- X+ */
- X+ while(otmp = fobj) {
- X+ fobj = otmp->nobj;
- X+ otmp->nobj = fobjtmp;
- X+ fobjtmp = otmp;
- X+ }
- X+ /* Set level.objects (as well as reversing the chain back again) */
- X+ while(otmp = fobjtmp) {
- X+ place_object(otmp, otmp->ox, otmp->oy);
- X+ fobjtmp = otmp->nobj;
- X+ otmp->nobj = fobj;
- X+ fobj = otmp;
- X+ }
- X+ }
- X+
- X static struct obj *
- X restobjchn(fd, ghostly)
- X register int fd;
- X***************
- X*** 74,80 ****
- X * new player's clock. Assumption: new player arrived immediately
- X * after old player died.
- X */
- X! if (ghostly) otmp->age = moves-omoves+otmp->age;
- X otmp2 = otmp;
- X }
- X if(first && otmp2->nobj){
- X--- 102,108 ----
- X * new player's clock. Assumption: new player arrived immediately
- X * after old player died.
- X */
- X! if (ghostly) otmp->age = monstermoves-omoves+otmp->age;
- X otmp2 = otmp;
- X }
- X if(first && otmp2->nobj){
- X***************
- X*** 211,216 ****
- X--- 239,245 ----
- X mread(fd, (genericptr_t) &dlevel, sizeof dlevel);
- X mread(fd, (genericptr_t) &maxdlevel, sizeof maxdlevel);
- X mread(fd, (genericptr_t) &moves, sizeof moves);
- X+ mread(fd, (genericptr_t) &monstermoves, sizeof monstermoves);
- X mread(fd, (genericptr_t) &wiz_level, sizeof wiz_level);
- X mread(fd, (genericptr_t) &medusa_level, sizeof medusa_level);
- X mread(fd, (genericptr_t) &bigroom_level, sizeof bigroom_level);
- X***************
- X*** 328,335 ****
- X #endif
- X getlev(fd, 0, (xchar)0, FALSE);
- X (void) close(fd);
- X! #ifdef EXPLORE_MODE
- X! if(!discover)
- X #endif
- X (void) unlink(SAVEF);
- X #ifdef REINCARNATION
- X--- 357,374 ----
- X #endif
- X getlev(fd, 0, (xchar)0, FALSE);
- X (void) close(fd);
- X! #if defined(WIZARD) || defined(EXPLORE_MODE)
- X! if(
- X! # ifdef WIZARD
- X! !wizard
- X! # ifdef EXPLORE_MODE
- X! &&
- X! # endif
- X! # endif
- X! # ifdef EXPLORE_MODE
- X! !discover
- X! # endif
- X! )
- X #endif
- X (void) unlink(SAVEF);
- X #ifdef REINCARNATION
- X***************
- X*** 372,377 ****
- X--- 411,417 ----
- X {
- X register struct gold *gold;
- X register struct trap *trap;
- X+ register struct monst *mtmp;
- X #ifdef WORM
- X register struct wseg *wtmp;
- X register int tmp;
- X***************
- X*** 666,671 ****
- X--- 706,712 ----
- X }
- X free((genericptr_t) trap);
- X fobj = restobjchn(fd, ghostly);
- X+ find_lev_obj();
- X billobjs = restobjchn(fd, ghostly);
- X rest_engravings(fd);
- X mread(fd, (genericptr_t)rooms, sizeof(rooms));
- X***************
- X*** 683,688 ****
- X--- 724,737 ----
- X }
- X mread(fd, (genericptr_t)wgrowtime, sizeof(wgrowtime));
- X #endif
- X+
- X+ /* reset level.monsters for new level */
- X+ for (x = 0; x < COLNO; x++)
- X+ for (y = 0; y < ROWNO; y++)
- X+ level.monsters[x][y] = (struct monst *) 0;
- X+ for (mtmp = level.monlist; mtmp; mtmp = mtmp->nmon)
- X+ place_monster(mtmp, mtmp->mx, mtmp->my);
- X+
- X #ifdef TUTTI_FRUTTI
- X /* Now get rid of all the temp fruits... */
- X if (ghostly) {
- X*** src/Old/rnd.c Wed Sep 27 12:15:19 1989
- X--- src/rnd.c Thu Sep 14 13:21:51 1989
- X***************
- X*** 28,33 ****
- X--- 28,39 ----
- X rn2(x) /* 0 <= rn2(x) < x */
- X register int x;
- X {
- X+ #ifdef DEBUG
- X+ if (x == 0) {
- X+ impossible("rn2(0) attempted");
- X+ return(0);
- X+ }
- X+ #endif
- X return(RND(x));
- X }
- X
- X***************
- X*** 50,55 ****
- X--- 56,67 ----
- X rnd(x) /* 1 <= rnd(x) <= x */
- X register int x;
- X {
- X+ #ifdef DEBUG
- X+ if (x == 0) {
- X+ impossible("rnd(0) attempted");
- X+ return(1);
- X+ }
- X+ #endif
- X return(RND(x)+1);
- X }
- X
- X*** src/Old/rumors.c Wed Sep 27 12:15:31 1989
- X--- src/rumors.c Mon Sep 25 21:29:05 1989
- X***************
- X*** 223,229 ****
- X You("have no money.");
- X return(0);
- X }
- X! pline("\"Wilt thou settle for a minor consultation?\" (50 Zorkmids) ");
- X ans = ynq();
- X if(ans == 'y') {
- X if(u.ugold < 50) {
- X--- 223,229 ----
- X You("have no money.");
- X return(0);
- X }
- X! pline("\"Wilt thou settle for a minor consultation?\" (50 zorkmids) ");
- X ans = ynq();
- X if(ans == 'y') {
- X if(u.ugold < 50) {
- X***************
- X*** 237,243 ****
- X return(1);
- X } else if(ans == 'q') return(0);
- X else {
- X! pline("\"Then dost thou desire a major one?\" (1000 Zorkmids) ");
- X if (yn() != 'y') return(0);
- X }
- X if(u.ugold < 1000) {
- X--- 237,243 ----
- X return(1);
- X } else if(ans == 'q') return(0);
- X else {
- X! pline("\"Then dost thou desire a major one?\" (1000 zorkmids) ");
- X if (yn() != 'y') return(0);
- X }
- X if(u.ugold < 1000) {
- X*** src/Old/save.c Wed Sep 27 12:15:46 1989
- X--- src/save.c Tue Sep 26 16:08:38 1989
- X***************
- X*** 14,20 ****
- X #ifndef NO_SIGNAL
- X #include <signal.h>
- X #endif /* !NO_SIGNAL */
- X! #ifdef EXPLORE_MODE
- X #include <fcntl.h>
- X #endif /* EXPLORE_MODE */
- X
- X--- 14,20 ----
- X #ifndef NO_SIGNAL
- X #include <signal.h>
- X #endif /* !NO_SIGNAL */
- X! #if defined(EXPLORE_MODE) && !defined(O_RDONLY)
- X #include <fcntl.h>
- X #endif /* EXPLORE_MODE */
- X
- X***************
- X*** 75,83 ****
- X #ifndef NOSAVEONHANGUP
- X int
- X hangup(){
- X! hu = TRUE;
- X! (void) dosave0();
- X! exit(1);
- X return 0;
- X }
- X #endif
- X--- 75,88 ----
- X #ifndef NOSAVEONHANGUP
- X int
- X hangup(){
- X! if (!hu)
- X! {
- X! hu = TRUE;
- X! (void) dosave0();
- X! # ifndef VMS
- X! exit(1);
- X! # endif
- X! }
- X return 0;
- X }
- X #endif
- X***************
- X*** 95,101 ****
- X #ifdef COMPRESS
- X char cmd[80];
- X #endif
- X! #ifdef UNIX
- X (void) signal(SIGHUP, SIG_IGN);
- X #endif
- X #if !defined(__TURBOC__) && !defined(OLD_TOS)
- X--- 100,110 ----
- X #ifdef COMPRESS
- X char cmd[80];
- X #endif
- X!
- X! if (!SAVEF[0])
- X! return 0;
- X!
- X! #if defined(UNIX) || defined(VMS)
- X (void) signal(SIGHUP, SIG_IGN);
- X #endif
- X #if !defined(__TURBOC__) && !defined(OLD_TOS)
- X***************
- X*** 164,169 ****
- X--- 173,179 ----
- X bwrite(fd, (genericptr_t) &dlevel, sizeof dlevel);
- X bwrite(fd, (genericptr_t) &maxdlevel, sizeof maxdlevel);
- X bwrite(fd, (genericptr_t) &moves, sizeof moves);
- X+ bwrite(fd, (genericptr_t) &monstermoves, sizeof monstermoves);
- X bwrite(fd, (genericptr_t) &wiz_level, sizeof wiz_level);
- X bwrite(fd, (genericptr_t) &medusa_level, sizeof medusa_level);
- X bwrite(fd, (genericptr_t) &bigroom_level, sizeof bigroom_level);
- X***************
- X*** 355,361 ****
- X else
- X #endif
- X bwrite(fd, (genericptr_t) &showsyms, sizeof(struct symbols));
- X! bwrite(fd,(genericptr_t) &moves,sizeof(long));
- X bwrite(fd,(genericptr_t) &xupstair,sizeof(xupstair));
- X bwrite(fd,(genericptr_t) &yupstair,sizeof(yupstair));
- X bwrite(fd,(genericptr_t) &xdnstair,sizeof(xdnstair));
- X--- 365,371 ----
- X else
- X #endif
- X bwrite(fd, (genericptr_t) &showsyms, sizeof(struct symbols));
- X! bwrite(fd,(genericptr_t) &monstermoves,sizeof(long));
- X bwrite(fd,(genericptr_t) &xupstair,sizeof(xupstair));
- X bwrite(fd,(genericptr_t) &yupstair,sizeof(yupstair));
- X bwrite(fd,(genericptr_t) &xdnstair,sizeof(xdnstair));
- X*** src/Old/search.c Wed Sep 27 12:16:28 1989
- X--- src/search.c Thu Sep 14 14:12:00 1989
- X***************
- X*** 36,42 ****
- X atl(zx,zy,(char)((ttmp->ttyp==WEB) ? WEB_SYM : TRAP_SYM));
- X (*num)++;
- X }
- X! } else if(levl[zx][zy].mmask) {
- X mtmp = m_at(zx,zy);
- X if(mtmp->mimic) {
- X seemimic(mtmp);
- X--- 36,42 ----
- X atl(zx,zy,(char)((ttmp->ttyp==WEB) ? WEB_SYM : TRAP_SYM));
- X (*num)++;
- X }
- X! } else if(MON_AT(zx, zy)) {
- X mtmp = m_at(zx,zy);
- X if(mtmp->mimic) {
- X seemimic(mtmp);
- X***************
- X*** 122,128 ****
- X prl(x,y);
- X } else {
- X /* Be careful not to find anything in an SCORR or SDOOR */
- X! if(levl[x][y].mmask) {
- X mtmp = m_at(x,y);
- X if(!aflag && mtmp->mimic) {
- X seemimic(mtmp);
- X--- 122,128 ----
- X prl(x,y);
- X } else {
- X /* Be careful not to find anything in an SCORR or SDOOR */
- X! if(MON_AT(x, y)) {
- X mtmp = m_at(x,y);
- X if(!aflag && mtmp->mimic) {
- X seemimic(mtmp);
- X*** src/Old/shk.c Wed Sep 27 12:17:07 1989
- X--- src/shk.c Mon Sep 25 23:01:31 1989
- X***************
- X*** 9,15 ****
- X #include "eshk.h"
- X
- X #ifdef KOPS
- X! static int makekops();
- X static void kops_gone();
- X #endif /* KOPS */
- X
- X--- 9,15 ----
- X #include "eshk.h"
- X
- X #ifdef KOPS
- X! static int makekops P((coord *));
- X static void kops_gone();
- X #endif /* KOPS */
- X
- X***************
- X*** 125,132 ****
- X You("escaped the shop without paying!");
- X addupbill();
- X total += ESHK(shopkeeper)->debit;
- X! You("stole %ld zorkmids worth of merchandise.",
- X! total);
- X ESHK(shopkeeper)->robbed += total;
- X ESHK(shopkeeper)->credit = 0L;
- X ESHK(shopkeeper)->debit = 0L;
- X--- 125,132 ----
- X You("escaped the shop without paying!");
- X addupbill();
- X total += ESHK(shopkeeper)->debit;
- X! You("stole %ld zorkmid%s worth of merchandise.",
- X! total, plur(total));
- X ESHK(shopkeeper)->robbed += total;
- X ESHK(shopkeeper)->credit = 0L;
- X ESHK(shopkeeper)->debit = 0L;
- X***************
- X*** 404,415 ****
- X register struct monst *shkp;
- X {
- X register xchar x = ESHK(shkp)->shk.x, y = ESHK(shkp)->shk.y;
- X! if(levl[x][y].mmask)
- X mnearto(m_at(x,y), x, y, FALSE);
- X! levl[shkp->mx][shkp->my].mmask = 0;
- X! shkp->mx = x;
- X! shkp->my = y;
- X! levl[shkp->mx][shkp->my].mmask = 1;
- X unpmon(shkp);
- X }
- X
- X--- 404,413 ----
- X register struct monst *shkp;
- X {
- X register xchar x = ESHK(shkp)->shk.x, y = ESHK(shkp)->shk.y;
- X! if(MON_AT(x, y))
- X mnearto(m_at(x,y), x, y, FALSE);
- X! remove_monster(shkp->mx, shkp->my);
- X! place_monster(shkp, x, y);
- X unpmon(shkp);
- X }
- X
- X***************
- X*** 468,476 ****
- X else {
- X long ugold = u.ugold;
- X
- X! if(ugold > ltmp) {
- X! You("give %s the %ld gold pieces %s asked for.",
- X! mon_nam(shkp), ltmp,
- X ESHK(shkp)->ismale ? "he" : "she");
- X pay(ltmp, shkp);
- X } else {
- X--- 466,474 ----
- X else {
- X long ugold = u.ugold;
- X
- X! if(ugold > ltmp) {
- X! You("give %s the %ld gold piece%s %s asked for.",
- X! mon_nam(shkp), ltmp, plur(ltmp),
- X ESHK(shkp)->ismale ? "he" : "she");
- X pay(ltmp, shkp);
- X } else {
- X***************
- X*** 538,545 ****
- X }
- X /* pay debt, if any, first */
- X if(ESHK(shopkeeper)->debit) {
- X! You("owe %s %ld zorkmids for the use of merchandise.",
- X! shkname(shopkeeper), ESHK(shopkeeper)->debit);
- X if(u.ugold + ESHK(shopkeeper)->credit <
- X ESHK(shopkeeper)->debit) {
- X pline("But you don't have enough gold%s.",
- X--- 536,544 ----
- X }
- X /* pay debt, if any, first */
- X if(ESHK(shopkeeper)->debit) {
- X! You("owe %s %ld zorkmid%s for the use of merchandise.",
- X! shkname(shopkeeper), ESHK(shopkeeper)->debit,
- X! plur(ESHK(shopkeeper)->debit));
- X if(u.ugold + ESHK(shopkeeper)->credit <
- X ESHK(shopkeeper)->debit) {
- X pline("But you don't have enough gold%s.",
- X***************
- X*** 722,732 ****
- X } else {
- X u.ugold -= loss;
- X shopkeeper->mgold += loss;
- X! pline("%s comes and takes %ld zorkmids %sowed %s.",
- X! Monnam(shopkeeper),
- X! loss,
- X! strncmp(ESHK(shopkeeper)->customer, plname, PL_NSIZ) ? "" : "you ",
- X! ESHK(shopkeeper)->ismale ? "him" : "her");
- X }
- X
- X /* in case we create bones */
- X--- 721,732 ----
- X } else {
- X u.ugold -= loss;
- X shopkeeper->mgold += loss;
- X! pline("%s comes and takes %ld zorkmid%s %sowed %s.",
- X! Monnam(shopkeeper),
- X! loss,
- X! plur(loss),
- X! strncmp(ESHK(shopkeeper)->customer, plname, PL_NSIZ) ? "" : "you ",
- X! ESHK(shopkeeper)->ismale ? "him" : "her");
- X }
- X
- X /* in case we create bones */
- X***************
- X*** 847,854 ****
- X pline("%s; only %d %s %s.\"", buf, bp->price,
- X (bp->bquan > 1) ? "per" : "for this", xname(obj));
- X obj->quan = bp->bquan;
- X! } else pline("The %s will cost you %d zorkmids%s.",
- X! xname(obj), bp->price,
- X (bp->bquan > 1) ? " each" : "");
- X ESHK(shopkeeper)->billct++;
- X obj->unpaid = 1;
- X--- 847,854 ----
- X pline("%s; only %d %s %s.\"", buf, bp->price,
- X (bp->bquan > 1) ? "per" : "for this", xname(obj));
- X obj->quan = bp->bquan;
- X! } else pline("The %s will cost you %d zorkmid%s%s.",
- X! xname(obj), bp->price, plur((long)bp->price),
- X (bp->bquan > 1) ? " each" : "");
- X ESHK(shopkeeper)->billct++;
- X obj->unpaid = 1;
- X***************
- X*** 886,900 ****
- X }
- X }
- X
- X! void
- X subfrombill(obj)
- X register struct obj *obj;
- X {
- X- long ltmp;
- X register struct bill_x *bp;
- X
- X- if(!costly_spot(u.ux,u.uy))
- X- return;
- X if((bp = onbill(obj)) != 0) {
- X register struct obj *otmp;
- X
- X--- 886,897 ----
- X }
- X }
- X
- X! static void
- X subfrombill(obj)
- X register struct obj *obj;
- X {
- X register struct bill_x *bp;
- X
- X if((bp = onbill(obj)) != 0) {
- X register struct obj *otmp;
- X
- X***************
- X*** 914,927 ****
- X ESHK(shopkeeper)->billct--;
- X *bp = bill[ESHK(shopkeeper)->billct];
- X return;
- X! }
- X! if(obj->unpaid) {
- X! if(inhishop(shopkeeper))
- X! pline("%s didn't notice.", Monnam(shopkeeper));
- X obj->unpaid = 0;
- X- return; /* %% */
- X }
- X! /* he dropped something of his own - probably wants to sell it */
- X if(shopkeeper->msleep || shopkeeper->mfroz || !inhishop(shopkeeper))
- X return;
- X ltmp = (long) getprice(obj) * (long) obj->quan;
- X--- 911,932 ----
- X ESHK(shopkeeper)->billct--;
- X *bp = bill[ESHK(shopkeeper)->billct];
- X return;
- X! } else if (obj->unpaid) {
- X! impossible("subfrombill: unpaid object not on bill");
- X obj->unpaid = 0;
- X }
- X! }
- X!
- X! void
- X! sellobj(obj)
- X! register struct obj *obj;
- X! {
- X! long ltmp;
- X!
- X! if(!costly_spot(u.ux,u.uy))
- X! return;
- X! subfrombill(obj);
- X! /* you dropped something of your own - probably want to sell it */
- X if(shopkeeper->msleep || shopkeeper->mfroz || !inhishop(shopkeeper))
- X return;
- X ltmp = (long) getprice(obj) * (long) obj->quan;
- X***************
- X*** 1007,1018 ****
- X for(cnt = 0; buf[cnt]; cnt++);
- X while(cnt < 50)
- X buf[cnt++] = ' ';
- X! Sprintf(&buf[cnt], " %5ld zorkmids", thisused);
- X if(page_line(buf))
- X goto quit;
- X }
- X }
- X! Sprintf(buf, "Total:%50ld zorkmids", totused);
- X if(page_line("") || page_line(buf))
- X goto quit;
- X set_pager(1);
- X--- 1012,1023 ----
- X for(cnt = 0; buf[cnt]; cnt++);
- X while(cnt < 50)
- X buf[cnt++] = ' ';
- X! Sprintf(&buf[cnt], " %5ld zorkmid%s", thisused, plur(thisused));
- X if(page_line(buf))
- X goto quit;
- X }
- X }
- X! Sprintf(buf, "Total:%50ld zorkmid%s", totused, plur(totused));
- X if(page_line("") || page_line(buf))
- X goto quit;
- X set_pager(1);
- X***************
- X*** 1039,1044 ****
- X--- 1044,1050 ----
- X case FOOD_SYM:
- X /* simpler hunger check, (2-4)*cost */
- X if (u.uhs >= HUNGRY) tmp *= u.uhs;
- X+ if (OEATEN(obj)) tmp /= 2; /* partly eaten */
- X break;
- X case WAND_SYM:
- X if (obj->spe == -1) tmp = 0;
- X***************
- X*** 1064,1071 ****
- X {
- X register struct monst *shkp = shopkeeper;
- X
- X if(u.uinshop && shkp && !shkp->mfroz && !shkp->msleep &&
- X- u.dx && u.dy &&
- X inroom(u.ux+u.dx, u.uy+u.dy) + 1 == u.uinshop &&
- X shkp->mx == ESHK(shkp)->shk.x && shkp->my == ESHK(shkp)->shk.y &&
- X u.ux == ESHK(shkp)->shd.x && u.uy == ESHK(shkp)->shd.y) {
- X--- 1070,1077 ----
- X {
- X register struct monst *shkp = shopkeeper;
- X
- X+ if(obj->otyp != PICK_AXE) return(0);
- X if(u.uinshop && shkp && !shkp->mfroz && !shkp->msleep &&
- X inroom(u.ux+u.dx, u.uy+u.dy) + 1 == u.uinshop &&
- X shkp->mx == ESHK(shkp)->shk.x && shkp->my == ESHK(shkp)->shk.y &&
- X u.ux == ESHK(shkp)->shd.x && u.uy == ESHK(shkp)->shd.y) {
- X***************
- X*** 1072,1077 ****
- X--- 1078,1084 ----
- X pline("%s nimbly catches the %s.", Monnam(shkp), xname(obj));
- X obj->nobj = shkp->minvent;
- X shkp->minvent = obj;
- X+ subfrombill(obj);
- X return(1);
- X }
- X return(0);
- X***************
- X*** 1227,1233 ****
- X pline("\"%s, do not damage the floor here!\"",
- X flags.female ? "Madam" : "Sir");
- X if (pl_character[0] == 'K') adjalign(-sgn(u.ualigntyp));
- X! } else if(um_dist(shopkeeper->mx, shopkeeper->my, 2)) {
- X register struct obj *obj, *obj2;
- X
- X if(dist(shopkeeper->mx, shopkeeper->my) > 2) {
- X--- 1234,1240 ----
- X pline("\"%s, do not damage the floor here!\"",
- X flags.female ? "Madam" : "Sir");
- X if (pl_character[0] == 'K') adjalign(-sgn(u.ualigntyp));
- X! } else if(!um_dist(shopkeeper->mx, shopkeeper->my, 5)) {
- X register struct obj *obj, *obj2;
- X
- X if(dist(shopkeeper->mx, shopkeeper->my) > 2) {
- X***************
- X*** 1248,1255 ****
- X freeinv(obj);
- X obj->nobj = shopkeeper->minvent;
- X shopkeeper->minvent = obj;
- X! if(obj->unpaid)
- X! subfrombill(obj);
- X }
- X }
- X }
- X--- 1255,1261 ----
- X freeinv(obj);
- X obj->nobj = shopkeeper->minvent;
- X shopkeeper->minvent = obj;
- X! subfrombill(obj);
- X }
- X }
- X }
- X***************
- X*** 1328,1341 ****
- X if(!in_shop(shopkeeper->mx ,shopkeeper->my)) return;
- X
- X /* if a !shopkeeper shows up at the door, move him */
- X! if(levl[x][y].mmask && (mtmp = m_at(x, y)) != shopkeeper) {
- X if(flags.soundok) {
- X You("hear an angry voice: \"Out of my way, scum!\"");
- X (void) fflush(stdout);
- X! #if defined(SYSV) || defined(ULTRIX)
- X (void)
- X #endif
- X! #ifdef UNIX
- X sleep(1);
- X #endif
- X }
- X--- 1334,1347 ----
- X if(!in_shop(shopkeeper->mx ,shopkeeper->my)) return;
- X
- X /* if a !shopkeeper shows up at the door, move him */
- X! if(MON_AT(x, y) && (mtmp = m_at(x, y)) != shopkeeper) {
- X if(flags.soundok) {
- X You("hear an angry voice: \"Out of my way, scum!\"");
- X (void) fflush(stdout);
- X! #if defined(SYSV) || defined(ULTRIX) || defined(VMS)
- X (void)
- X #endif
- X! #if defined(UNIX) || defined(VMS)
- X sleep(1);
- X #endif
- X }
- X***************
- X*** 1343,1352 ****
- X }
- X
- X /* make shk show up at the door */
- X! levl[shopkeeper->mx][shopkeeper->my].mmask = 0;
- X! levl[x][y].mmask = 1;
- X! shopkeeper->mx = x;
- X! shopkeeper->my = y;
- X pmon(shopkeeper);
- X
- X damage = (ACURR(A_STR) > 18) ? 400 : 20 * ACURR(A_STR);
- X--- 1349,1356 ----
- X }
- X
- X /* make shk show up at the door */
- X! remove_monster(shopkeeper->mx, shopkeeper->my);
- X! place_monster(shopkeeper, x, y);
- X pmon(shopkeeper);
- X
- X damage = (ACURR(A_STR) > 18) ? 400 : 20 * ACURR(A_STR);
- X***************
- X*** 1374,1380 ****
- X NOTANGRY(shopkeeper) = 1;
- X }
- X else {
- X! pline("\"Oh, yes! You'll pay!\"");
- X ESHK(shopkeeper)->following = 1;
- X NOTANGRY(shopkeeper) = 0;
- X adjalign(-sgn(u.ualigntyp));
- X--- 1378,1384 ----
- X NOTANGRY(shopkeeper) = 1;
- X }
- X else {
- X! verbalize("Oh, yes! You'll pay!");
- X ESHK(shopkeeper)->following = 1;
- X NOTANGRY(shopkeeper) = 0;
- X adjalign(-sgn(u.ualigntyp));
- X*** src/Old/shknam.c Wed Sep 27 12:17:56 1989
- X--- src/shknam.c Thu Sep 14 14:12:08 1989
- X***************
- X*** 186,192 ****
- X register struct monst *mtmp;
- X int atype;
- X
- X! if (rn2(100) < dlevel && levl[sx][sy].mmask == 0 &&
- X (mtmp=makemon(mkclass(S_MIMIC),sx,sy))) {
- X mtmp->mimic = 1;
- X /* note: makemon will set the mimic symbol to a shop item */
- X--- 186,192 ----
- X register struct monst *mtmp;
- X int atype;
- X
- X! if (rn2(100) < dlevel && !MON_AT(sx, sy) &&
- X (mtmp=makemon(mkclass(S_MIMIC),sx,sy))) {
- X mtmp->mimic = 1;
- X /* note: makemon will set the mimic symbol to a shop item */
- X***************
- X*** 258,264 ****
- X return(-1);
- X }
- X
- X! if(levl[sx][sy].mmask) rloc(m_at(sx, sy)); /* insurance */
- X
- X /* now initialize the shopkeeper monster structure */
- X if(!(shk = makemon(&mons[PM_SHOPKEEPER], sx, sy))) return(-1);
- X--- 258,264 ----
- X return(-1);
- X }
- X
- X! if(MON_AT(sx, sy)) rloc(m_at(sx, sy)); /* insurance */
- X
- X /* now initialize the shopkeeper monster structure */
- X if(!(shk = makemon(&mons[PM_SHOPKEEPER], sx, sy))) return(-1);
- X*** src/Old/sounds.c Wed Sep 27 12:18:36 1989
- X--- src/sounds.c Thu Sep 14 14:12:11 1989
- X***************
- X*** 381,390 ****
- X case MS_HUMANOID:
- X /* Generic humanoid behaviour. */
- X if (!mtmp->mpeaceful && !mtmp->mtame) break;
- X! if (mtmp->mhp < 10)
- X! kludge("%s moans.", Monnam(mtmp));
- X! else if (mtmp->mflee)
- X kludge("%s wants nothing to do with you.", Monnam(mtmp));
- X else if (mtmp->mconf || mtmp->mstun)
- X verbalize(!rn2(3) ? "Huh?" : rn2(2) ? "What?" : "Eh?");
- X else if (mtmp->mblinded)
- X--- 381,390 ----
- X case MS_HUMANOID:
- X /* Generic humanoid behaviour. */
- X if (!mtmp->mpeaceful && !mtmp->mtame) break;
- X! if (mtmp->mflee)
- X kludge("%s wants nothing to do with you.", Monnam(mtmp));
- X+ else if (mtmp->mhp < mtmp->mhpmax/4)
- X+ kludge("%s moans.", Monnam(mtmp));
- X else if (mtmp->mconf || mtmp->mstun)
- X verbalize(!rn2(3) ? "Huh?" : rn2(2) ? "What?" : "Eh?");
- X else if (mtmp->mblinded)
- X***************
- X*** 587,593 ****
- X }
- X
- X tx = u.ux+u.dx; ty = u.uy+u.dy;
- X! if ((Blind && !Telepat) || !levl[tx][ty].mmask ||
- X (mtmp = m_at(tx, ty))->mimic || mtmp->mundetected) {
- X pline("I see nobody there.");
- X return(0);
- X--- 587,593 ----
- X }
- X
- X tx = u.ux+u.dx; ty = u.uy+u.dy;
- X! if ((Blind && !Telepat) || !MON_AT(tx, ty) ||
- X (mtmp = m_at(tx, ty))->mimic || mtmp->mundetected) {
- X pline("I see nobody there.");
- X return(0);
- X*** src/Old/spell.c Wed Sep 27 12:19:31 1989
- X--- src/spell.c Thu Sep 14 14:06:53 1989
- X***************
- X*** 18,27 ****
- X #define spellid(spell) spl_book[spell-1].sp_id
- X
- X static void
- X! cursed_book(level)
- X! register int level;
- X {
- X! switch(rn2(level)) {
- X case 0:
- X You("feel a wrenching sensation.");
- X tele(); /* teleport him */
- X--- 18,27 ----
- X #define spellid(spell) spl_book[spell-1].sp_id
- X
- X static void
- X! cursed_book(lev)
- X! register int lev;
- X {
- X! switch(rn2(lev)) {
- X case 0:
- X You("feel a wrenching sensation.");
- X tele(); /* teleport him */
- X*** src/Old/termcap.c Wed Sep 27 12:20:12 1989
- X--- src/termcap.c Wed Sep 27 11:25:44 1989
- X***************
- X*** 32,50 ****
- X # ifdef TERMLIB
- X static void init_hilite();
- X # endif
- X! #define NONE 0
- X! #define HIGH_INTENSITY 1
- X! #define BLACK 0
- X! #define HILITE_ATTRIB HIGH_INTENSITY
- X! #endif /* TEXTCOLOR */
- X
- X static char *HO, *CL, *CE, *UP, *CM, *ND, *XD, *BC, *SO, *SE, *TI, *TE;
- X static char *VS, *VE, *US, *UE;
- X static char *MR, *ME;
- X #if 0
- X! static char *MB, *MD, *MH;
- X #endif
- X #ifdef TERMLIB
- X static int SG;
- X static char PC = '\0';
- X static char tbuf[512];
- X--- 32,50 ----
- X # ifdef TERMLIB
- X static void init_hilite();
- X # endif
- X! #endif
- X
- X static char *HO, *CL, *CE, *UP, *CM, *ND, *XD, *BC, *SO, *SE, *TI, *TE;
- X static char *VS, *VE, *US, *UE;
- X static char *MR, *ME;
- X #if 0
- X! static char *MB, *MH;
- X! static char *MD; /* may already be in use below */
- X #endif
- X #ifdef TERMLIB
- X+ # ifdef TEXTCOLOR
- X+ static char *MD;
- X+ # endif
- X static int SG;
- X static char PC = '\0';
- X static char tbuf[512];
- X***************
- X*** 134,140 ****
- X SO = "\033p";
- X SE = "\033q";
- X HI = "\033p";
- X! HE = "\033q";
- X }
- X # else /* TOS */
- X {
- X--- 134,144 ----
- X SO = "\033p";
- X SE = "\033q";
- X HI = "\033p";
- X! HE = "\033q\033b\020";
- X! for (i = 0; i < SIZE(hilites); i++) {
- X! hilites[i] = (char *) alloc(sizeof("Eb1"));
- X! Sprintf(hilites[i], (i%4)?"\033b%c","\033p", i);
- X! }
- X }
- X # else /* TOS */
- X {
- X***************
- X*** 173,182 ****
- X # endif
- X TE = VS = VE = "";
- X # ifdef TEXTCOLOR
- X! for (i = 0; i < SIZE(HI_COLOR); i++) {
- X! HI_COLOR[i] = (char *) alloc(sizeof("E[0;33;44m"));
- X! Sprintf(HI_COLOR[i], "\033[%d;3%dm",
- X! i == BLACK ? NONE : HILITE_ATTRIB, i);
- X }
- X # endif
- X return;
- X--- 177,187 ----
- X # endif
- X TE = VS = VE = "";
- X # ifdef TEXTCOLOR
- X! for (i = 0; i < MAXCOLORS / 2; i++) {
- X! hilites[i] = (char *) alloc(sizeof("\033[0;3%dm"));
- X! hilites[i+BRIGHT] = (char *) alloc(sizeof("\033[1;3%dm"));
- X! Sprintf(hilites[i], "\033[0;3%dm", i);
- X! Sprintf(hilites[i+BRIGHT], "\033[1;3%dm", i);
- X }
- X # endif
- X return;
- X***************
- X*** 282,287 ****
- X--- 287,295 ----
- X AS = Tgetstr("as");
- X AE = Tgetstr("ae");
- X CD = Tgetstr("cd");
- X+ # ifdef TEXTCOLOR
- X+ MD = Tgetstr("md");
- X+ # endif
- X set_whole_screen(); /* uses LI and CD */
- X if(tbufptr-tbuf > sizeof(tbuf)) error("TERMCAP entry too big...\n");
- X free((genericptr_t)tptr);
- X***************
- X*** 514,519 ****
- X--- 522,528 ----
- X (void) fflush(stdout);
- X }
- X
- X+ #if defined(TERMLIB) || defined(DECRAINBOW)
- X void
- X graph_on() {
- X if (AS) xputs(AS);
- X***************
- X*** 523,533 ****
- X--- 532,550 ----
- X graph_off() {
- X if (AE) xputs(AE);
- X }
- X+ #endif
- X
- X #ifndef MSDOS
- X+ # ifdef VMS
- X+ static const short tmspc10[] = { /* from termcap */
- X+ 0, 2000, 1333, 909, 743, 666, 333, 166, 83, 55, 50, 41, 27, 20, 13, 10,
- X+ 5
- X+ };
- X+ # else
- X static const short tmspc10[] = { /* from termcap */
- X 0, 2000, 1333, 909, 743, 666, 500, 333, 166, 83, 55, 41, 20, 10, 5
- X };
- X+ # endif
- X #endif
- X
- X void
- X***************
- X*** 594,600 ****
- X * code found in pri.c). It is assumed that the background color is black.
- X */
- X /* terminfo indexes for the basic colors it guarantees */
- X! #define COLOR_BLACK 0
- X #define COLOR_BLUE 1
- X #define COLOR_GREEN 2
- X #define COLOR_CYAN 3
- X--- 611,617 ----
- X * code found in pri.c). It is assumed that the background color is black.
- X */
- X /* terminfo indexes for the basic colors it guarantees */
- X! #define COLOR_BLACK 1 /* fake out to avoid black on black */
- X #define COLOR_BLUE 1
- X #define COLOR_GREEN 2
- X #define COLOR_CYAN 3
- X***************
- X*** 611,633 ****
- X static void
- X init_hilite()
- X {
- X- int erret;
- X- char *setf, *scratch;
- X register int c;
- X! extern int setupterm();
- X! extern char *tparm(), *tigetstr();
- X
- X! for (c = 0; c < SIZE(HI_COLOR); c++)
- X! HI_COLOR[c] = HI;
- X
- X! if (tgetnum("Co") < 8 || (setf = tgetstr("Sf", 0)) == (char *)NULL)
- X return;
- X
- X! for (c = 0; c < SIZE(HI_COLOR); c++) {
- X! scratch = tparm(setf, ti_map[c]);
- X! HI_COLOR[c] = (char *)alloc(strlen(scratch) + 1);
- X! Strcpy(HI_COLOR[c], scratch);
- X }
- X }
- X
- X # else /* UNIX */
- X--- 628,655 ----
- X static void
- X init_hilite()
- X {
- X register int c;
- X! # ifdef TERMINFO
- X! char *setf, *scratch;
- X! extern char *tparm();
- X! # endif
- X
- X! for (c = 0; c < MAXCOLORS; c++)
- X! hilites[c] = HI;
- X
- X! # ifdef TERMINFO
- X! if (tgetnum("Co") < 8 || (setf = tgetstr("Sf", 0)) == NULL)
- X return;
- X
- X! for (c = 0; c < MAXCOLORS / 2; c++) {
- X! scratch = tparm(setf, ti_map[c]);
- X! hilites[c] = (char *) alloc(strlen(scratch) + 1);
- X! hilites[c+BRIGHT] = (char*) alloc(strlen(scratch)+strlen(MD)+1);
- X! Strcpy(hilites[c], scratch);
- X! Strcpy(hilites[c+BRIGHT], MD);
- X! Strcat(hilites[c+BRIGHT], scratch);
- X }
- X+ # endif
- X }
- X
- X # else /* UNIX */
- X***************
- X*** 644,652 ****
- X int backg = BLACK, foreg = WHITE, len;
- X register int c, color;
- X
- X! for (c = 0; c < SIZE(HI_COLOR); c++)
- X! HI_COLOR[c] = HI;
- X
- X /* find the background color, HI[len] == 'm' */
- X len = strlen(HI) - 1;
- X
- X--- 666,683 ----
- X int backg = BLACK, foreg = WHITE, len;
- X register int c, color;
- X
- X! for (c = 0; c < SIZE(hilites); c++)
- X! hilites[c] = HI;
- X
- X+ # ifdef TOS
- X+ hilites[RED] = hilites[BRIGHT+RED] = "\033b1";
- X+ hilites[BLUE] = hilites[BRIGHT+BLUE] = "\033b2";
- X+ hilites[CYAN] = hilites[BRIGHT+CYAN] = "\033b3\033c2";
- X+ hilites[ORANGE_COLORED] = hilites[RED];
- X+ hilites[WHITE] = hilites[GRAY] = "\033b3";
- X+ hilites[MAGENTA] = hilites[BRIGHT+MAGENTA] = "\033b1\033c2";
- X+ HE = "\033q\033b3\033c0"; /* to turn off the color stuff too */
- X+ # else /* TOS */
- X /* find the background color, HI[len] == 'm' */
- X len = strlen(HI) - 1;
- X
- X***************
- X*** 657,662 ****
- X--- 688,697 ----
- X if ((color = atoi(&HI[c])) == 0) {
- X /* this also catches errors */
- X foreg = WHITE; backg = BLACK;
- X+ /*
- X+ } else if (color == 1) {
- X+ foreg |= BRIGHT;
- X+ */
- X } else if (color >= 30 && color <= 37) {
- X foreg = color - 30;
- X } else if (color >= 40 && color <= 47) {
- X***************
- X*** 666,679 ****
- X c++;
- X }
- X
- X! for (c = 0; c < SIZE(HI_COLOR); c++)
- X /* avoid invisibility */
- X if (foreg != c && backg != c) {
- X! HI_COLOR[c] = (char *) alloc(sizeof("E[0;33;44;54m"));
- X! Sprintf(HI_COLOR[c], "\033[%d;3%d;4%dm",
- X! c == BLACK ? NONE : HILITE_ATTRIB,
- X! c, backg);
- X }
- X }
- X # endif /* UNIX */
- X #endif /* TEXTCOLOR */
- X--- 701,715 ----
- X c++;
- X }
- X
- X! for (c = 0; c < MAXCOLORS / 2; c++)
- X /* avoid invisibility */
- X if (foreg != c && backg != c) {
- X! hilites[c] = (char *) alloc(sizeof("\033[0;3%d;4%dm"));
- X! hilites[c+BRIGHT] = (char *) alloc(sizeof("\033[1;3%d;4%dm"));
- X! Sprintf(hilites[c], "\033[0;3%d;4%dm", c, backg);
- X! Sprintf(hilites[c+BRIGHT], "\033[1;3%d;4%dm", c, backg);
- X }
- X+ # endif /* TOS */
- X }
- X # endif /* UNIX */
- X #endif /* TEXTCOLOR */
- X*** src/Old/timeout.c Wed Sep 27 12:20:47 1989
- X--- src/timeout.c Tue Sep 26 12:59:23 1989
- X***************
- X*** 29,35 ****
- X "You find it hard to breathe.",
- X "You're gasping for air.",
- X "You can no longer breathe.",
- X! "You're turning blue.",
- X "You suffocate."
- X };
- X
- X--- 29,35 ----
- X "You find it hard to breathe.",
- X "You're gasping for air.",
- X "You can no longer breathe.",
- X! "You're turning %s.",
- X "You suffocate."
- X };
- X
- X***************
- X*** 39,45 ****
- X register long i = (Strangled & TIMEOUT);
- X
- X if(i > 0 && i <= SIZE(choke_texts))
- X! pline(choke_texts[SIZE(choke_texts) - i]);
- X }
- X
- X void
- X--- 39,46 ----
- X register long i = (Strangled & TIMEOUT);
- X
- X if(i > 0 && i <= SIZE(choke_texts))
- X! pline(choke_texts[SIZE(choke_texts) - i], Hallucination ?
- X! hcolor() : blue);
- X }
- X
- X void
- X***************
- X*** 77,83 ****
- X if(upp->p_tofn) (*upp->p_tofn)();
- X else switch(upp - u.uprops){
- X case STONED:
- X! killer = "cockatrice";
- X done(STONING);
- X break;
- X case SICK:
- X--- 78,84 ----
- X if(upp->p_tofn) (*upp->p_tofn)();
- X else switch(upp - u.uprops){
- X case STONED:
- X! if (!killer) killer = "cockatrice";
- X done(STONING);
- X break;
- X case SICK:
- X***************
- X*** 171,182 ****
- X int yours = otmp->spe;
- X #endif
- X
- X! if(moves-otmp->age > 200) /* very old egg - it's dead */
- X otmp->corpsenm = -1;
- X #ifdef LINT /* long conv. ok */
- X else if(rnd(150) > 150) {
- X #else
- X! else if(rnd((int)(moves-otmp->age)) > 150) {
- X #endif
- X mtmp = makemon(&mons[big_to_little(otmp->corpsenm)], u.ux, u.uy);
- X useup(otmp);
- X--- 172,183 ----
- X int yours = otmp->spe;
- X #endif
- X
- X! if(monstermoves-otmp->age > 200) /* very old egg - it's dead */
- X otmp->corpsenm = -1;
- X #ifdef LINT /* long conv. ok */
- X else if(rnd(150) > 150) {
- X #else
- X! else if(rnd((int)(monstermoves-otmp->age)) > 150) {
- X #endif
- X mtmp = makemon(&mons[big_to_little(otmp->corpsenm)], u.ux, u.uy);
- X useup(otmp);
- X***************
- X*** 202,208 ****
- X }
- X #endif
- X if(mtmp->data->mlet == S_DRAGON) {
- X! pline("\"Gleep!\""); /* Mything eggs :-) */
- X (void) tamedog(mtmp, (struct obj *)0);
- X }
- X }
- X--- 203,209 ----
- X }
- X #endif
- X if(mtmp->data->mlet == S_DRAGON) {
- X! verbalize("Gleep!"); /* Mything eggs :-) */
- X (void) tamedog(mtmp, (struct obj *)0);
- X }
- X }
- X
- END_OF_FILE
- if test 52224 -ne `wc -c <'patches04d'`; then
- echo shar: \"'patches04d'\" unpacked with wrong size!
- fi
- # end of 'patches04d'
- fi
- echo shar: End of archive 4 \(of 11\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-